<?php

namespace JLPay\Models\Openmerch\Query;

use JLPay\Models\BaseResponse;

/**
 * 实名认证查询响应
 */
class RealNameQueryResponse extends BaseResponse
{
    protected array $realnameInfo = [];  // 实名认证信息列表

    /**
     * 构造函数
     *
     * @param array|null $responseArray
     */
    public function __construct(?array $responseArray = null)
    {
        parent::__construct($responseArray);
        
        if ($responseArray) {
            // 处理实名认证信息列表
            $realnameInfoList = $responseArray['realname_info'] ?? [];
            if ($realnameInfoList && is_array($realnameInfoList)) {
                foreach ($realnameInfoList as $infoData) {
                    if (is_array($infoData)) {
                        $this->realnameInfo[] = new RealNameInfo($infoData);
                    }
                }
            }
        }
    }

    /**
     * 获取实名认证信息列表
     *
     * @return array
     */
    public function getRealnameInfo(): array
    {
        return $this->realnameInfo;
    }

    /**
     * 转换为数组
     *
     * @return array
     */
    public function toArray(): array
    {
        $data = parent::toArray();
        $data['realname_info'] = array_map(function($info) {
            if ($info instanceof RealNameInfo) {
                return $info->toArray();
            }
            return $info; // 如果已经是数组，直接返回
        }, $this->realnameInfo);
        return $data;
    }
} 